package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;

/**
 * 字符流
 * Java将流按照读写的数据单位划分为字节流与字符流
 * Java.io.InputStream和OutputStream是所有字节输入和输出流的超类
 * Java.io.reader和writer则是所有字符输入与输出流的超类
 * 注释：这两对超类之间是平级，互相没有继承关系
 *
 * reader里定义了读取字符的相关方法
 * writer里定义了写出媳妇的相关方法
 * 特点都是以char为单位
 *
 * 转化流：
 * Java.io.InputStreamReader和OutputStreamWriter
 * 它们是常见字符流现类，同时时一定对高级流。实际开发中我们不会直接使用它们，但是在流连接
 * 中它们是重要的一环
 */
public class OSWDemo {
    public static void main(String[] args) throws IOException {
        //向文件osw.txt中写入文本数据
        FileOutputStream fos =new FileOutputStream("osw.txt");
       //创建转换流时，可以通过第二个参数来指定字符集
        OutputStreamWriter osw =new OutputStreamWriter(fos, StandardCharsets.UTF_8);

        String line="摩擦摩擦，在这光滑的马路牙子上打出溜滑";

        osw.write(line);
        System.out.println("写出完毕");
        osw.close();
    }
}
